// in 检测某属性是否是某对象的自有属性或者是继承属性 true  false
// 自有属性:声明对象的时候写在对象里面的属性
// 继承属性:继承来的属性
var obj={
    name:"tom",
    age:12
};
// console.log('name' in obj,'自有属性');
// console.log('age' in obj,'自有属性');
// console.log('gender' in obj,'非自有属性非继承属性');
// console.log('toString' in obj,'继承属性');
// 2.hasOwnProperty -检测属性是否是自有属性 true
// --继承属性返回false
var obj1={
    name:"张三",
    age:18,
    school:'太原理工&山西农大'
}
console.log(obj1.hasOwnProperty('name'),'自有属性');
console.log(obj1.hasOwnProperty('toString'),'继承属性');
console.log(obj1.hasOwnProperty('gender'),'非自有属性');

// propertyIsEnumerable 检测除了是自身属性外 还必须是可枚举属性(自己写的属性)
var obj2={
    name:"lerry",
    age:28,
}
console.log(obj2.propertyIsEnumerable('name'),'可枚举属性');
console.log(obj2.propertyIsEnumerable('toString'),'不可枚举属性');
console.log(obj2.propertyIsEnumerable('gender'),'不可枚举属性');
